//
//  Problem1480.swift
//  TestProject
//
//  Created by 武侠 on 2021/4/7.
//  Copyright © 2021 zhulong. All rights reserved.
//

import UIKit

/*
 1480. 一维数组的动态和
 给你一个数组 nums 。数组「动态和」的计算公式为：runningSum[i] = sum(nums[0]…nums[i]) 。

 请返回 nums 的动态和。

 示例 1：
     输入：nums = [1,2,3,4]
     输出：[1,3,6,10]
     解释：动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。
 示例 2：
     输入：nums = [1,1,1,1,1]
     输出：[1,2,3,4,5]
     解释：动态和计算过程为 [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1] 。
 示例 3：
     输入：nums = [3,1,2,10,1]
     输出：[3,4,6,16,17]
 提示：
     1 <= nums.length <= 1000
     -10^6 <= nums[i] <= 10^6
 */
@objcMembers class Problem1480: NSObject {
    func solution() {
        print(runningSumMap([3,1,2,10,1]))
    }
    
    func runningSum(_ nums: [Int]) -> [Int] {
        var list = nums
        for i in 1..<nums.count {
            list[i] += list[i-1]
        }
        return list
    }
    
    func runningSumMap(_ nums: [Int]) -> [Int] {
        var sum = 0
        return nums.map { (value) -> Int in
            sum += value
            return sum
        }
    }
}
